Autogenerated HTML docs for v1.7.1-331-ga5080 
diff --git a/cmds-mainporcelain.txt b/cmds-mainporcelain.txt index a0f8470..10dfc24 100644 --- a/cmds-mainporcelain.txt +++ b/cmds-mainporcelain.txt 
@@ -68,7 +68,7 @@ 	Move or rename a file, a directory, or a symlink.    linkgit:git-notes[1]:: -	Add/inspect object notes. +	Add or inspect object notes.    linkgit:git-pull[1]:: 	Fetch from and merge with another repository or a local branch. 
diff --git a/config.txt b/config.txt index 85f763c..95cf73c 100644 --- a/config.txt +++ b/config.txt 
@@ -520,18 +520,12 @@    core.notesRef:: 	When showing commit messages, also show notes which are stored in -	the given ref. This ref is expected to contain files named -	after the full SHA-1 of the commit they annotate. The ref -	must be fully qualified. +	the given ref. The ref must be fully qualified. If the given +	ref does not exist, it is not an error but means that no +	notes should be printed.  + -If such a file exists in the given ref, the referenced blob is read, and -appended to the commit message, separated by a "Notes (<refname>):" -line (shortened to "Notes:" in the case of "refs/notes/commits"). If the -given ref itself does not exist, it is not an error, but means that no -notes should be printed. -+ -This setting defaults to "refs/notes/commits", and can be overridden by -the `GIT_NOTES_REF` environment variable. +This setting defaults to "refs/notes/commits", and it can be overridden by +the 'GIT_NOTES_REF' environment variable. See linkgit:git-notes[1].    core.sparseCheckout:: 	Enable "sparse checkout" feature. See section "Sparse checkout" in @@ -1481,6 +1475,16 @@ 	it takes precedence over this option. To disable pagination for 	all commands, set `core.pager` or `GIT_PAGER` to `cat`.   +pretty.<name>:: +	Alias for a --pretty= format string, as specified in +	linkgit:git-log[1]. Any aliases defined here can be used just +	as the built-in pretty formats could. For example, +	running `git config pretty.changelog "format:{asterisk} %H %s"` +	would cause the invocation `git log --pretty=changelog` +	to be equivalent to running `git log "--pretty=format:{asterisk} %H %s"`. +	Note that an alias with the same name as a built-in format +	will be silently ignored. +  pull.octopus:: 	The default merge strategy to use when pulling multiple branches 	at once. 
diff --git a/diff-options.txt b/diff-options.txt index 0d89aaa..e745a3c 100644 --- a/diff-options.txt +++ b/diff-options.txt 
@@ -210,7 +210,14 @@ 	Break complete rewrite changes into pairs of delete and create.    -M:: +ifndef::git-log[] 	Detect renames. +endif::git-log[] +ifdef::git-log[] +	If generating diffs, detect and report renames for each commit. +	For following files across renames while traversing history, see +	`--follow`. +endif::git-log[]    -C:: 	Detect copies as well as renames. See also `--find-copies-harder`. 
diff --git a/git-add.html b/git-add.html index faf55bc..2b9529f 100644 --- a/git-add.html +++ b/git-add.html 
@@ -671,9 +671,9 @@  <div class="content">   <pre><tt>y - stage this hunk   n - do not stage this hunk  -q - quit, do not stage this hunk nor any of the remaining ones  -a - stage this and all the remaining hunks in the file  -d - do not stage this hunk nor any of the remaining hunks in the file  +q - quit; do not stage this hunk nor any of the remaining ones  +a - stage this hunk and all later hunks in the file  +d - do not stage this hunk nor any of the later hunks in the file   g - select a hunk to go to   / - search for a hunk matching the given regex   j - leave this hunk undecided, see next undecided hunk  @@ -721,7 +721,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2010-04-24 02:55:46 UTC  +Last updated 2010-06-13 19:56:31 UTC   </div>   </div>   </body>  
diff --git a/git-add.txt b/git-add.txt index 51cbeb7..74741a4 100644 --- a/git-add.txt +++ b/git-add.txt 
@@ -266,9 +266,9 @@    y - stage this hunk  n - do not stage this hunk - q - quit, do not stage this hunk nor any of the remaining ones - a - stage this and all the remaining hunks in the file - d - do not stage this hunk nor any of the remaining hunks in the file + q - quit; do not stage this hunk nor any of the remaining ones + a - stage this hunk and all later hunks in the file + d - do not stage this hunk nor any of the later hunks in the file  g - select a hunk to go to  / - search for a hunk matching the given regex  j - leave this hunk undecided, see next undecided hunk 
diff --git a/git-config.html b/git-config.html index 3ae1cfe..217602c 100644 --- a/git-config.html +++ b/git-config.html 
@@ -1493,17 +1493,12 @@  <dd>   <p>   When showing commit messages, also show notes which are stored in  - the given ref. This ref is expected to contain files named  - after the full SHA-1 of the commit they annotate. The ref  - must be fully qualified.  + the given ref. The ref must be fully qualified. If the given  + ref does not exist, it is not an error but means that no  + notes should be printed.   </p>  -<div class="para"><p>If such a file exists in the given ref, the referenced blob is read, and  -appended to the commit message, separated by a "Notes (&lt;refname&gt;):"  -line (shortened to "Notes:" in the case of "refs/notes/commits"). If the  -given ref itself does not exist, it is not an error, but means that no  -notes should be printed.</p></div>  -<div class="para"><p>This setting defaults to "refs/notes/commits", and can be overridden by  -the <tt>GIT_NOTES_REF</tt> environment variable.</p></div>  +<div class="para"><p>This setting defaults to "refs/notes/commits", and it can be overridden by  +the <em>GIT_NOTES_REF</em> environment variable. See <a href="git-notes.html">git-notes(1)</a>.</p></div>   </dd>   <dt>   core.sparseCheckout  @@ -3326,6 +3321,21 @@  </p>   </dd>   <dt>  +pretty.&lt;name&gt;  +</dt>  +<dd>  +<p>  + Alias for a --pretty= format string, as specified in  + <a href="git-log.html">git-log(1)</a>. Any aliases defined here can be used just  + as the built-in pretty formats could. For example,  + running <tt>git config pretty.changelog "format:&#42; %H %s"</tt>  + would cause the invocation <tt>git log --pretty=changelog</tt>  + to be equivalent to running <tt>git log "--pretty=format:&#42; %H %s"</tt>.  + Note that an alias with the same name as a built-in format  + will be silently ignored.  +</p>  +</dd>  +<dt>   pull.octopus   </dt>   <dd>  @@ -3916,7 +3926,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2010-06-01 05:05:55 UTC  +Last updated 2010-06-13 19:56:31 UTC   </div>   </div>   </body>  
diff --git a/git-cvsserver.html b/git-cvsserver.html index 136b241..0eb80de 100644 --- a/git-cvsserver.html +++ b/git-cvsserver.html 
@@ -411,8 +411,6 @@  </div>   <h2 id="_limitations">LIMITATIONS</h2>   <div class="sectionbody">  -<div class="para"><p>Currently cvsserver works over SSH connections for read/write clients, and  -over pserver for anonymous CVS access.</p></div>   <div class="para"><p>CVS clients cannot tag, branch or perform GIT merges.</p></div>   <div class="para"><p><em>git-cvsserver</em> maps GIT branches to CVS modules. This is very different   from what most CVS users would expect since in CVS modules usually represent  @@ -423,7 +421,7 @@  <div class="olist"><ol>   <li>   <p>  -If you are going to offer anonymous CVS access via pserver, add a line in  +If you are going to offer CVS access via pserver, add a line in   /etc/inetd.conf like   </p>   <div class="listingblock">  @@ -440,6 +438,37 @@  <pre><tt> cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvsserver pserver   </tt></pre>   </div></div>  +<div class="para"><p>Only anonymous access is provided by pserve by default. To commit you  +will have to create pserver accounts, simply add a gitcvs.authdb  +setting in the config file of the repositories you want the cvsserver  +to allow writes to, for example:</p></div>  +<div class="listingblock">  +<div class="content">  +<pre><tt>  + [gitcvs]  + authdb = /etc/cvsserver/passwd  +</tt></pre>  +</div></div>  +<div class="para"><p>The format of these files is username followed by the crypted password,  +for example:</p></div>  +<div class="listingblock">  +<div class="content">  +<pre><tt> myuser:$1Oyx5r9mdGZ2  + myuser:$1$BA)@$vbnMJMDym7tA32AamXrm./</tt></pre>  +</div></div>  +<div class="para"><p>You can use the <em>htpasswd</em> facility that comes with Apache to make these  +files, but Apache's MD5 crypt method differs from the one used by most C  +library's crypt() function, so don't use the -m option.</p></div>  +<div class="para"><p>Alternatively you can produce the password with perl's crypt() operator:</p></div>  +<div class="listingblock">  +<div class="content">  +<pre><tt> perl -e 'my ($user, $pass) = @ARGV; printf "%s:%s\n", $user, crypt($user, $pass)' $USER password</tt></pre>  +</div></div>  +<div class="para"><p>Then provide your password via the pserver method, for example:</p></div>  +<div class="listingblock">  +<div class="content">  +<pre><tt> cvs -d:pserver:someuser:somepassword &lt;at&gt; server/path/repo.git co &lt;HEAD_name&gt;</tt></pre>  +</div></div>   <div class="para"><p>No special setup is needed for SSH access, other than having GIT tools   in the PATH. If you have clients that do not accept the CVS_SERVER   environment variable, you can rename <em>git-cvsserver</em> to <tt>cvs</tt>.</p></div>  @@ -806,7 +835,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2010-04-24 02:55:51 UTC  +Last updated 2010-06-13 19:56:32 UTC   </div>   </div>   </body>  
diff --git a/git-cvsserver.txt b/git-cvsserver.txt index dbb053e..c27ca43 100644 --- a/git-cvsserver.txt +++ b/git-cvsserver.txt 
@@ -72,9 +72,6 @@  LIMITATIONS  -----------   -Currently cvsserver works over SSH connections for read/write clients, and -over pserver for anonymous CVS access. -  CVS clients cannot tag, branch or perform GIT merges.    'git-cvsserver' maps GIT branches to CVS modules. This is very different @@ -84,7 +81,7 @@  INSTALLATION  ------------   -1. If you are going to offer anonymous CVS access via pserver, add a line in +1. If you are going to offer CVS access via pserver, add a line in  /etc/inetd.conf like  +  -- @@ -101,6 +98,38 @@  cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvsserver pserver    ------ + +Only anonymous access is provided by pserve by default. To commit you +will have to create pserver accounts, simply add a gitcvs.authdb +setting in the config file of the repositories you want the cvsserver +to allow writes to, for example: + +------ + + [gitcvs] +	authdb = /etc/cvsserver/passwd + +------ +The format of these files is username followed by the crypted password, +for example: + +------ + myuser:$1Oyx5r9mdGZ2 + myuser:$1$BA)@$vbnMJMDym7tA32AamXrm./ +------ +You can use the 'htpasswd' facility that comes with Apache to make these +files, but Apache's MD5 crypt method differs from the one used by most C +library's crypt() function, so don't use the -m option. + +Alternatively you can produce the password with perl's crypt() operator: +----- + perl -e 'my ($user, $pass) = @ARGV; printf "%s:%s\n", $user, crypt($user, $pass)' $USER password +----- + +Then provide your password via the pserver method, for example: +------ + cvs -d:pserver:someuser:somepassword <at> server/path/repo.git co <HEAD_name> +------  No special setup is needed for SSH access, other than having GIT tools  in the PATH. If you have clients that do not accept the CVS_SERVER  environment variable, you can rename 'git-cvsserver' to `cvs`. 
diff --git a/git-diff-files.html b/git-diff-files.html index 5bd3e40..3b88214 100644 --- a/git-diff-files.html +++ b/git-diff-files.html 
@@ -1498,7 +1498,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2010-05-21 14:57:15 UTC  +Last updated 2010-06-13 19:56:32 UTC   </div>   </div>   </body>  
diff --git a/git-diff-index.html b/git-diff-index.html index d9a0f8f..f2084e7 100644 --- a/git-diff-index.html +++ b/git-diff-index.html 
@@ -1576,7 +1576,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2010-05-21 14:57:16 UTC  +Last updated 2010-06-13 19:56:33 UTC   </div>   </div>   </body>  
diff --git a/git-diff-tree.html b/git-diff-tree.html index 9253d21..672c29d 100644 --- a/git-diff-tree.html +++ b/git-diff-tree.html 
@@ -1147,7 +1147,12 @@  have limited your view of history: for example, if you are   only interested in changes related to a certain directory or   file.</p></div>  -<div class="para"><p>Here are some additional details for each format:</p></div>  +<div class="para"><p>There are several built-in formats, and you can define  +additional formats by setting a pretty.&lt;name&gt;  +config option to either another format name, or a  +<em>format:</em> string, as described below (see  +<a href="git-config.html">git-config(1)</a>). Here are the details of the  +built-in formats:</p></div>   <div class="ilist"><ul>   <li>   <p>  @@ -2142,7 +2147,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2010-06-02 23:32:07 UTC  +Last updated 2010-06-13 19:56:33 UTC   </div>   </div>   </body>  
diff --git a/git-diff.html b/git-diff.html index 8506169..cff2bf2 100644 --- a/git-diff.html +++ b/git-diff.html 
@@ -1705,7 +1705,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2010-05-21 14:57:17 UTC  +Last updated 2010-06-13 19:56:34 UTC   </div>   </div>   </body>  
diff --git a/git-format-patch.html b/git-format-patch.html index ddec636..f777948 100644 --- a/git-format-patch.html +++ b/git-format-patch.html 
@@ -1036,7 +1036,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2010-05-21 14:57:18 UTC  +Last updated 2010-06-13 19:56:34 UTC   </div>   </div>   </body>  
diff --git a/git-log.html b/git-log.html index f24b31b..0d98914 100644 --- a/git-log.html +++ b/git-log.html 
@@ -667,7 +667,9 @@  </dt>   <dd>   <p>  - Detect renames.  + If generating diffs, detect and report renames for each commit.  + For following files across renames while traversing history, see  + <tt>--follow</tt>.   </p>   </dd>   <dt>  @@ -1917,7 +1919,12 @@  have limited your view of history: for example, if you are   only interested in changes related to a certain directory or   file.</p></div>  -<div class="para"><p>Here are some additional details for each format:</p></div>  +<div class="para"><p>There are several built-in formats, and you can define  +additional formats by setting a pretty.&lt;name&gt;  +config option to either another format name, or a  +<em>format:</em> string, as described below (see  +<a href="git-config.html">git-config(1)</a>). Here are the details of the  +built-in formats:</p></div>   <div class="ilist"><ul>   <li>   <p>  @@ -2669,6 +2676,78 @@  object level, because re-coding to UTF-8 is not necessarily a   reversible operation.</p></div>   </div>  +<h2 id="_configuration">Configuration</h2>  +<div class="sectionbody">  +<div class="para"><p>See <a href="git-config.html">git-config(1)</a> for core variables and <a href="git-diff.html">git-diff(1)</a>  +for settings related to diff generation.</p></div>  +<div class="vlist"><dl>  +<dt>  +format.pretty  +</dt>  +<dd>  +<p>  + Default for the <tt>--format</tt> option. (See "PRETTY FORMATS" above.)  + Defaults to "medium".  +</p>  +</dd>  +<dt>  +i18n.logOutputEncoding  +</dt>  +<dd>  +<p>  + Encoding to use when displaying logs. (See "Discussion", above.)  + Defaults to the value of <tt>i18n.commitEncoding</tt> if set, UTF-8  + otherwise.  +</p>  +</dd>  +<dt>  +log.date  +</dt>  +<dd>  +<p>  + Default format for human-readable dates. (Compare the  + <tt>--date</tt> option.) Defaults to "default", which means to write  + dates like <tt>Sat May 8 19:35:34 2010 -0500</tt>.  +</p>  +</dd>  +<dt>  +log.showroot  +</dt>  +<dd>  +<p>  + If <tt>false</tt>, <em>git log</em> and related commands will not treat the  + initial commit as a big creation event. Any root commits in  + <tt>git log -p</tt> output would be shown without a diff attached.  + The default is <tt>true</tt>.  +</p>  +</dd>  +<dt>  +mailmap.file  +</dt>  +<dd>  +<p>  + See <a href="git-shortlog.html">git-shortlog(1)</a>.  +</p>  +</dd>  +<dt>  +notes.displayRef  +</dt>  +<dd>  +<p>  + Which refs, in addition to the default set by <tt>core.notesRef</tt>  + or <em>GIT_NOTES_REF</em>, to read notes from when showing commit  + messages with the <em>log</em> family of commands. See  + <a href="git-notes.html">git-notes(1)</a>.  +</p>  +<div class="para"><p>May be an unabbreviated ref name or a glob and may be specified  +multiple times. A warning will be issued for refs that do not exist,  +but a glob that does not match any refs is silently ignored.</p></div>  +<div class="para"><p>This setting can be disabled by the <tt>--no-standard-notes</tt> option,  +overridden by the <em>GIT_NOTES_DISPLAY_REF</em> environment variable,  +and supplemented by the <tt>--show-notes</tt> option.</p></div>  +</dd>  +</dl></div>  +</div>   <h2 id="_author">Author</h2>   <div class="sectionbody">   <div class="para"><p>Written by Linus Torvalds &lt;torvalds@osdl.org&gt;</p></div>  @@ -2683,7 +2762,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2010-06-02 23:32:07 UTC  +Last updated 2010-06-13 19:56:35 UTC   </div>   </div>   </body>  
diff --git a/git-log.txt b/git-log.txt index a2d55f9..0e6ff31 100644 --- a/git-log.txt +++ b/git-log.txt 
@@ -133,6 +133,48 @@    include::i18n.txt[]   +Configuration +------------- + +See linkgit:git-config[1] for core variables and linkgit:git-diff[1] +for settings related to diff generation. + +format.pretty:: +	Default for the `--format` option. (See "PRETTY FORMATS" above.) +	Defaults to "medium". + +i18n.logOutputEncoding:: +	Encoding to use when displaying logs. (See "Discussion", above.) +	Defaults to the value of `i18n.commitEncoding` if set, UTF-8 +	otherwise. + +log.date:: +	Default format for human-readable dates. (Compare the +	`--date` option.) Defaults to "default", which means to write +	dates like `Sat May 8 19:35:34 2010 -0500`. + +log.showroot:: +	If `false`, 'git log' and related commands will not treat the +	initial commit as a big creation event. Any root commits in +	`git log -p` output would be shown without a diff attached. +	The default is `true`. + +mailmap.file:: +	See linkgit:git-shortlog[1]. + +notes.displayRef:: +	Which refs, in addition to the default set by `core.notesRef` +	or 'GIT_NOTES_REF', to read notes from when showing commit +	messages with the 'log' family of commands. See +	linkgit:git-notes[1]. ++ +May be an unabbreviated ref name or a glob and may be specified +multiple times. A warning will be issued for refs that do not exist, +but a glob that does not match any refs is silently ignored. ++ +This setting can be disabled by the `--no-standard-notes` option, +overridden by the 'GIT_NOTES_DISPLAY_REF' environment variable, +and supplemented by the `--show-notes` option.    Author  ------ 
diff --git a/git-notes.html b/git-notes.html index 779b101..b811976 100644 --- a/git-notes.html +++ b/git-notes.html 
@@ -314,7 +314,7 @@  <h2>NAME</h2>   <div class="sectionbody">   <p>git-notes -  - Add/inspect object notes  + Add or inspect object notes   </p>   </div>   </div>  @@ -328,25 +328,26 @@  <em>git notes</em> edit [&lt;object&gt;]   <em>git notes</em> show [&lt;object&gt;]   <em>git notes</em> remove [&lt;object&gt;]  -<em>git notes</em> prune</div></div>  +<em>git notes</em> prune [-n | -v]</div></div>   </div>   <h2 id="_description">DESCRIPTION</h2>   <div class="sectionbody">  -<div class="para"><p>This command allows you to add/remove notes to/from objects, without  -changing the objects themselves.</p></div>  -<div class="para"><p>A typical use of notes is to extend a commit message without having  -to change the commit itself. Such commit notes can be shown by <tt>git log</tt>  -along with the original commit message. To discern these notes from the  +<div class="para"><p>Adds, removes, or reads notes attached to objects, without touching  +the objects themselves.</p></div>  +<div class="para"><p>By default, notes are saved to and read from <tt>refs/notes/commits</tt>, but  +this default can be overridden. See the OPTIONS, CONFIGURATION, and  +ENVIRONMENT sections below. If this ref does not exist, it will be  +quietly created when it is first needed to store a note.</p></div>  +<div class="para"><p>A typical use of notes is to supplement a commit message without  +changing the commit itself. Notes can be shown by <em>git log</em> along with  +the original commit message. To distinguish these notes from the   message stored in the commit object, the notes are indented like the   message, after an unindented line saying "Notes (&lt;refname&gt;):" (or  -"Notes:" for the default setting).</p></div>  -<div class="para"><p>This command always manipulates the notes specified in "core.notesRef"  -(see <a href="git-config.html">git-config(1)</a>), which can be overridden by GIT_NOTES_REF.  -To change which notes are shown by <em>git-log</em>, see the  -"notes.displayRef" configuration.</p></div>  -<div class="para"><p>See the description of "notes.rewrite.&lt;command&gt;" in  -<a href="git-config.html">git-config(1)</a> for a way of carrying your notes across commands  -that rewrite commits.</p></div>  +"Notes:" for <tt>refs/notes/commits</tt>).</p></div>  +<div class="para"><p>To change which notes are shown by <em>git log</em>, see the  +"notes.displayRef" configuration in <a href="git-log.html">git-log(1)</a>.</p></div>  +<div class="para"><p>See the "notes.rewrite.&lt;command&gt;" configuration for a way to carry  +notes across commands that rewrite commits.</p></div>   </div>   <h2 id="_subcommands">SUBCOMMANDS</h2>   <div class="sectionbody">  @@ -463,6 +464,8 @@  Use the given note message (instead of prompting).   If multiple <tt>-m</tt> options are given, their values   are concatenated as separate paragraphs.  + Lines starting with <tt>#</tt> and empty lines other than a  + single line between paragraphs will be stripped out.   </p>   </dd>   <dt>  @@ -475,6 +478,8 @@  <p>   Take the note message from the given file. Use <em>-</em> to   read the note message from the standard input.  + Lines starting with <tt>#</tt> and empty lines other than a  + single line between paragraphs will be stripped out.   </p>   </dd>   <dt>  @@ -485,7 +490,8 @@  </dt>   <dd>   <p>  - Reuse the note message from the given note object.  + Take the note message from the given blob object (for  + example, another note).   </p>   </dd>   <dt>  @@ -505,22 +511,197 @@  </dt>   <dd>   <p>  - Manipulate the notes tree in &lt;ref&gt;. This overrides both  - GIT_NOTES_REF and the "core.notesRef" configuration. The ref  + Manipulate the notes tree in &lt;ref&gt;. This overrides  + <em>GIT_NOTES_REF</em> and the "core.notesRef" configuration. The ref   is taken to be in <tt>refs/notes/</tt> if it is not qualified.   </p>   </dd>  +<dt>  +-n  +</dt>  +<dd>  +<p>  + Do not remove anything; just report the object names whose notes  + would be removed.  +</p>  +</dd>  +<dt>  +-v  +</dt>  +<dd>  +<p>  + Report all object names whose notes are removed.  +</p>  +</dd>   </dl></div>   </div>  -<h2 id="_notes">NOTES</h2>  +<h2 id="_discussion">DISCUSSION</h2>   <div class="sectionbody">  +<div class="para"><p>Commit notes are blobs containing extra information about an object  +(usually information to supplement a commit's message). These blobs  +are taken from notes refs. A notes ref is usually a branch which  +contains "files" whose paths are the object names for the objects  +they describe, with some directory separators included for performance  +reasons <br />[Permitted pathnames have the form  +<em>ab</em><tt>/</tt><em>cd</em><tt>/</tt><em>ef</em><tt>/</tt><em>&#8230;</em><tt>/</tt><em>abcdef&#8230;</em>: a sequence of directory  +names of two hexadecimal digits each followed by a filename with the  +rest of the object ID.]<br />.</p></div>   <div class="para"><p>Every notes change creates a new commit at the specified notes ref.   You can therefore inspect the history of the notes by invoking, e.g.,  -<tt>git log -p notes/commits</tt>.</p></div>  -<div class="para"><p>Currently the commit message only records which operation triggered  -the update, and the commit authorship is determined according to the  -usual rules (see <a href="git-commit.html">git-commit(1)</a>). These details may change in  -the future.</p></div>  +<tt>git log -p notes/commits</tt>. Currently the commit message only records  +which operation triggered the update, and the commit authorship is  +determined according to the usual rules (see <a href="git-commit.html">git-commit(1)</a>).  +These details may change in the future.</p></div>  +<div class="para"><p>It is also permitted for a notes ref to point directly to a tree  +object, in which case the history of the notes can be read with  +<tt>git log -p -g &lt;refname&gt;</tt>.</p></div>  +</div>  +<h2 id="_examples">EXAMPLES</h2>  +<div class="sectionbody">  +<div class="para"><p>You can use notes to add annotations with information that was not  +available at the time a commit was written.</p></div>  +<div class="listingblock">  +<div class="content">  +<pre><tt>$ git notes add -m 'Tested-by: Johannes Sixt &lt;j6t@kdbg.org&gt;' 72a144e2  +$ git show -s 72a144e  +[...]  + Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;  +  +Notes:  + Tested-by: Johannes Sixt &lt;j6t@kdbg.org&gt;</tt></pre>  +</div></div>  +<div class="para"><p>In principle, a note is a regular Git blob, and any kind of  +(non-)format is accepted. You can binary-safely create notes from  +arbitrary files using <em>git hash-object</em>:</p></div>  +<div class="listingblock">  +<div class="content">  +<pre><tt>$ cc *.c  +$ blob=$(git hash-object -w a.out)  +$ git notes --ref=built add -C "$blob" HEAD</tt></pre>  +</div></div>  +<div class="para"><p>Of course, it doesn't make much sense to display non-text-format notes  +with <em>git log</em>, so if you use such notes, you'll probably need to write  +some special-purpose tools to do something useful with them.</p></div>  +</div>  +<h2 id="_configuration">CONFIGURATION</h2>  +<div class="sectionbody">  +<div class="vlist"><dl>  +<dt>  +core.notesRef  +</dt>  +<dd>  +<p>  + Notes ref to read and manipulate instead of  + <tt>refs/notes/commits</tt>. Must be an unabbreviated ref name.  + This setting can be overridden through the environment and  + command line.  +</p>  +</dd>  +<dt>  +notes.displayRef  +</dt>  +<dd>  +<p>  + Which ref (or refs, if a glob or specified more than once), in  + addition to the default set by <tt>core.notesRef</tt> or  + <em>GIT_NOTES_REF</em>, to read notes from when showing commit  + messages with the <em>git log</em> family of commands.  + This setting can be overridden on the command line or by the  + <em>GIT_NOTES_DISPLAY_REF</em> environment variable.  + See <a href="git-log.html">git-log(1)</a>.  +</p>  +</dd>  +<dt>  +notes.rewrite.&lt;command&gt;  +</dt>  +<dd>  +<p>  + When rewriting commits with &lt;command&gt; (currently <tt>amend</tt> or  + <tt>rebase</tt>), if this variable is <tt>false</tt>, git will not copy  + notes from the original to the rewritten commit. Defaults to  + <tt>true</tt>. See also "<tt>notes.rewriteRef</tt>" below.  +</p>  +<div class="para"><p>This setting can be overridden by the <em>GIT_NOTES_REWRITE_REF</em>  +environment variable.</p></div>  +</dd>  +<dt>  +notes.rewriteMode  +</dt>  +<dd>  +<p>  + When copying notes during a rewrite, what to do if the target  + commit already has a note. Must be one of <tt>overwrite</tt>,  + <tt>concatenate</tt>, and <tt>ignore</tt>. Defaults to <tt>concatenate</tt>.  +</p>  +<div class="para"><p>This setting can be overridden with the <tt>GIT_NOTES_REWRITE_MODE</tt>  +environment variable.</p></div>  +</dd>  +<dt>  +notes.rewriteRef  +</dt>  +<dd>  +<p>  + When copying notes during a rewrite, specifies the (fully  + qualified) ref whose notes should be copied. May be a glob,  + in which case notes in all matching refs will be copied. You  + may also specify this configuration several times.  +</p>  +<div class="para"><p>Does not have a default value; you must configure this variable to  +enable note rewriting.</p></div>  +<div class="para"><p>Can be overridden with the <em>GIT_NOTES_REWRITE_REF</em> environment variable.</p></div>  +</dd>  +</dl></div>  +</div>  +<h2 id="_environment">ENVIRONMENT</h2>  +<div class="sectionbody">  +<div class="vlist"><dl>  +<dt>  +<em>GIT_NOTES_REF</em>  +</dt>  +<dd>  +<p>  + Which ref to manipulate notes from, instead of <tt>refs/notes/commits</tt>.  + This overrides the <tt>core.notesRef</tt> setting.  +</p>  +</dd>  +<dt>  +<em>GIT_NOTES_DISPLAY_REF</em>  +</dt>  +<dd>  +<p>  + Colon-delimited list of refs or globs indicating which refs,  + in addition to the default from <tt>core.notesRef</tt> or  + <em>GIT_NOTES_REF</em>, to read notes from when showing commit  + messages.  + This overrides the <tt>notes.displayRef</tt> setting.  +</p>  +<div class="para"><p>A warning will be issued for refs that do not exist, but a glob that  +does not match any refs is silently ignored.</p></div>  +</dd>  +<dt>  +<em>GIT_NOTES_REWRITE_MODE</em>  +</dt>  +<dd>  +<p>  + When copying notes during a rewrite, what to do if the target  + commit already has a note.  + Must be one of <tt>overwrite</tt>, <tt>concatenate</tt>, and <tt>ignore</tt>.  + This overrides the <tt>core.rewriteMode</tt> setting.  +</p>  +</dd>  +<dt>  +<em>GIT_NOTES_REWRITE_REF</em>  +</dt>  +<dd>  +<p>  + When rewriting commits, which notes to copy from the original  + to the rewritten commit. Must be a colon-delimited list of  + refs or globs.  +</p>  +<div class="para"><p>If not set in the environment, the list of notes to copy depends  +on the <tt>notes.rewrite.&lt;command&gt;</tt> and <tt>notes.rewriteRef</tt> settings.</p></div>  +</dd>  +</dl></div>   </div>   <h2 id="_author">Author</h2>   <div class="sectionbody">  @@ -537,7 +718,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2010-04-24 02:56:02 UTC  +Last updated 2010-06-13 19:56:35 UTC   </div>   </div>   </body>  
diff --git a/git-notes.txt b/git-notes.txt index 4e5113b..5540af5 100644 --- a/git-notes.txt +++ b/git-notes.txt 
@@ -3,7 +3,7 @@    NAME  ---- -git-notes - Add/inspect object notes +git-notes - Add or inspect object notes    SYNOPSIS  -------- @@ -15,29 +15,31 @@  'git notes' edit [<object>]  'git notes' show [<object>]  'git notes' remove [<object>] -'git notes' prune +'git notes' prune [-n | -v]      DESCRIPTION  ----------- -This command allows you to add/remove notes to/from objects, without -changing the objects themselves. +Adds, removes, or reads notes attached to objects, without touching +the objects themselves.   -A typical use of notes is to extend a commit message without having -to change the commit itself. Such commit notes can be shown by `git log` -along with the original commit message. To discern these notes from the +By default, notes are saved to and read from `refs/notes/commits`, but +this default can be overridden. See the OPTIONS, CONFIGURATION, and +ENVIRONMENT sections below. If this ref does not exist, it will be +quietly created when it is first needed to store a note. + +A typical use of notes is to supplement a commit message without +changing the commit itself. Notes can be shown by 'git log' along with +the original commit message. To distinguish these notes from the  message stored in the commit object, the notes are indented like the  message, after an unindented line saying "Notes (<refname>):" (or -"Notes:" for the default setting). +"Notes:" for `refs/notes/commits`).   -This command always manipulates the notes specified in "core.notesRef" -(see linkgit:git-config[1]), which can be overridden by GIT_NOTES_REF. -To change which notes are shown by 'git-log', see the -"notes.displayRef" configuration. +To change which notes are shown by 'git log', see the +"notes.displayRef" configuration in linkgit:git-log[1].   -See the description of "notes.rewrite.<command>" in -linkgit:git-config[1] for a way of carrying your notes across commands -that rewrite commits. +See the "notes.rewrite.<command>" configuration for a way to carry +notes across commands that rewrite commits.      SUBCOMMANDS @@ -101,15 +103,20 @@ 	Use the given note message (instead of prompting). 	If multiple `-m` options are given, their values 	are concatenated as separate paragraphs. +	Lines starting with `#` and empty lines other than a +	single line between paragraphs will be stripped out.    -F <file>::  --file=<file>:: 	Take the note message from the given file. Use '-' to 	read the note message from the standard input. +	Lines starting with `#` and empty lines other than a +	single line between paragraphs will be stripped out.    -C <object>::  --reuse-message=<object>:: -	Reuse the note message from the given note object. +	Take the note message from the given blob object (for +	example, another note).    -c <object>::  --reedit-message=<object>:: @@ -117,22 +124,151 @@ 	the user can further edit the note message.    --ref <ref>:: -	Manipulate the notes tree in <ref>. This overrides both -	GIT_NOTES_REF and the "core.notesRef" configuration. The ref +	Manipulate the notes tree in <ref>. This overrides +	'GIT_NOTES_REF' and the "core.notesRef" configuration. The ref 	is taken to be in `refs/notes/` if it is not qualified.   +-n:: +	Do not remove anything; just report the object names whose notes +	would be removed.   -NOTES ------ +-v:: +	Report all object names whose notes are removed. + + +DISCUSSION +---------- + +Commit notes are blobs containing extra information about an object +(usually information to supplement a commit's message). These blobs +are taken from notes refs. A notes ref is usually a branch which +contains "files" whose paths are the object names for the objects +they describe, with some directory separators included for performance +reasons footnote:[Permitted pathnames have the form +'ab'`/`'cd'`/`'ef'`/`'...'`/`'abcdef...': a sequence of directory +names of two hexadecimal digits each followed by a filename with the +rest of the object ID.].    Every notes change creates a new commit at the specified notes ref.  You can therefore inspect the history of the notes by invoking, e.g., -`git log -p notes/commits`. +`git log -p notes/commits`. Currently the commit message only records +which operation triggered the update, and the commit authorship is +determined according to the usual rules (see linkgit:git-commit[1]). +These details may change in the future.   -Currently the commit message only records which operation triggered -the update, and the commit authorship is determined according to the -usual rules (see linkgit:git-commit[1]). These details may change in -the future. +It is also permitted for a notes ref to point directly to a tree +object, in which case the history of the notes can be read with +`git log -p -g <refname>`. + + +EXAMPLES +-------- + +You can use notes to add annotations with information that was not +available at the time a commit was written. + +------------ +$ git notes add -m 'Tested-by: Johannes Sixt <j6t@kdbg.org>' 72a144e2 +$ git show -s 72a144e +[...] + Signed-off-by: Junio C Hamano <gitster@pobox.com> + +Notes: + Tested-by: Johannes Sixt <j6t@kdbg.org> +------------ + +In principle, a note is a regular Git blob, and any kind of +(non-)format is accepted. You can binary-safely create notes from +arbitrary files using 'git hash-object': + +------------ +$ cc *.c +$ blob=$(git hash-object -w a.out) +$ git notes --ref=built add -C "$blob" HEAD +------------ + +Of course, it doesn't make much sense to display non-text-format notes +with 'git log', so if you use such notes, you'll probably need to write +some special-purpose tools to do something useful with them. + + +CONFIGURATION +------------- + +core.notesRef:: +	Notes ref to read and manipulate instead of +	`refs/notes/commits`. Must be an unabbreviated ref name. +	This setting can be overridden through the environment and +	command line. + +notes.displayRef:: +	Which ref (or refs, if a glob or specified more than once), in +	addition to the default set by `core.notesRef` or +	'GIT_NOTES_REF', to read notes from when showing commit +	messages with the 'git log' family of commands. +	This setting can be overridden on the command line or by the +	'GIT_NOTES_DISPLAY_REF' environment variable. +	See linkgit:git-log[1]. + +notes.rewrite.<command>:: +	When rewriting commits with <command> (currently `amend` or +	`rebase`), if this variable is `false`, git will not copy +	notes from the original to the rewritten commit. Defaults to +	`true`. See also "`notes.rewriteRef`" below. ++ +This setting can be overridden by the 'GIT_NOTES_REWRITE_REF' +environment variable. + +notes.rewriteMode:: +	When copying notes during a rewrite, what to do if the target +	commit already has a note. Must be one of `overwrite`, +	`concatenate`, and `ignore`. Defaults to `concatenate`. ++ +This setting can be overridden with the `GIT_NOTES_REWRITE_MODE` +environment variable. + +notes.rewriteRef:: +	When copying notes during a rewrite, specifies the (fully +	qualified) ref whose notes should be copied. May be a glob, +	in which case notes in all matching refs will be copied. You +	may also specify this configuration several times. ++ +Does not have a default value; you must configure this variable to +enable note rewriting. ++ +Can be overridden with the 'GIT_NOTES_REWRITE_REF' environment variable. + + +ENVIRONMENT +----------- + +'GIT_NOTES_REF':: +	Which ref to manipulate notes from, instead of `refs/notes/commits`. +	This overrides the `core.notesRef` setting. + +'GIT_NOTES_DISPLAY_REF':: +	Colon-delimited list of refs or globs indicating which refs, +	in addition to the default from `core.notesRef` or +	'GIT_NOTES_REF', to read notes from when showing commit +	messages. +	This overrides the `notes.displayRef` setting. ++ +A warning will be issued for refs that do not exist, but a glob that +does not match any refs is silently ignored. + +'GIT_NOTES_REWRITE_MODE':: +	When copying notes during a rewrite, what to do if the target +	commit already has a note. +	Must be one of `overwrite`, `concatenate`, and `ignore`. +	This overrides the `core.rewriteMode` setting. + +'GIT_NOTES_REWRITE_REF':: +	When rewriting commits, which notes to copy from the original +	to the rewritten commit. Must be a colon-delimited list of +	refs or globs. ++ +If not set in the environment, the list of notes to copy depends +on the `notes.rewrite.<command>` and `notes.rewriteRef` settings.      Author 
diff --git a/git-rev-list.html b/git-rev-list.html index e740b98..89cd9b4 100644 --- a/git-rev-list.html +++ b/git-rev-list.html 
@@ -1365,7 +1365,12 @@  have limited your view of history: for example, if you are   only interested in changes related to a certain directory or   file.</p></div>  -<div class="para"><p>Here are some additional details for each format:</p></div>  +<div class="para"><p>There are several built-in formats, and you can define  +additional formats by setting a pretty.&lt;name&gt;  +config option to either another format name, or a  +<em>format:</em> string, as described below (see  +<a href="git-config.html">git-config(1)</a>). Here are the details of the  +built-in formats:</p></div>   <div class="ilist"><ul>   <li>   <p>  @@ -1787,7 +1792,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2010-06-02 23:32:09 UTC  +Last updated 2010-06-13 19:56:35 UTC   </div>   </div>   </body>  
diff --git a/git-show.html b/git-show.html index f1b6fb6..a037a0f 100644 --- a/git-show.html +++ b/git-show.html 
@@ -441,7 +441,12 @@  have limited your view of history: for example, if you are   only interested in changes related to a certain directory or   file.</p></div>  -<div class="para"><p>Here are some additional details for each format:</p></div>  +<div class="para"><p>There are several built-in formats, and you can define  +additional formats by setting a pretty.&lt;name&gt;  +config option to either another format name, or a  +<em>format:</em> string, as described below (see  +<a href="git-config.html">git-config(1)</a>). Here are the details of the  +built-in formats:</p></div>   <div class="ilist"><ul>   <li>   <p>  @@ -980,7 +985,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2010-06-02 23:32:09 UTC  +Last updated 2010-06-13 19:56:36 UTC   </div>   </div>   </body>  
diff --git a/git-submodule.html b/git-submodule.html index 0b0aca2..23d8f3e 100644 --- a/git-submodule.html +++ b/git-submodule.html 
@@ -475,10 +475,12 @@  <dd>   <p>   Evaluates an arbitrary shell command in each checked out submodule.  - The command has access to the variables $name, $path and $sha1:  + The command has access to the variables $name, $path, $sha1 and  + $toplevel:   $name is the name of the relevant submodule section in .gitmodules,   $path is the name of the submodule directory relative to the  - superproject, and $sha1 is the commit as recorded in the superproject.  + superproject, $sha1 is the commit as recorded in the superproject,  + and $toplevel is the absolute path to the top-level of the superproject.   Any submodules defined in the superproject but not checked out are   ignored by this command. Unless given --quiet, foreach prints the name   of each submodule before evaluating the command.  @@ -661,7 +663,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2010-04-24 02:56:10 UTC  +Last updated 2010-06-13 19:56:36 UTC   </div>   </div>   </body>  
diff --git a/git-submodule.txt b/git-submodule.txt index 2502531..cdabfd2 100644 --- a/git-submodule.txt +++ b/git-submodule.txt 
@@ -145,10 +145,12 @@    foreach:: 	Evaluates an arbitrary shell command in each checked out submodule. -	The command has access to the variables $name, $path and $sha1: +	The command has access to the variables $name, $path, $sha1 and +	$toplevel: 	$name is the name of the relevant submodule section in .gitmodules, 	$path is the name of the submodule directory relative to the -	superproject, and $sha1 is the commit as recorded in the superproject. +	superproject, $sha1 is the commit as recorded in the superproject, +	and $toplevel is the absolute path to the top-level of the superproject. 	Any submodules defined in the superproject but not checked out are 	ignored by this command. Unless given --quiet, foreach prints the name 	of each submodule before evaluating the command. 
diff --git a/git-update-index.html b/git-update-index.html index 6d7f30f..56c4778 100644 --- a/git-update-index.html +++ b/git-update-index.html 
@@ -460,8 +460,6 @@  <div class="para"><p>This option can be also used as a coarse file-level mechanism   to ignore uncommitted changes in tracked files (akin to what   <tt>.gitignore</tt> does for untracked files).  -You should remember that an explicit <em>git add</em> operation will  -still cause the file to be refreshed from the working tree.   Git will fail (gracefully) in case it needs to modify this file   in the index e.g. when merging in a commit;   thus, in case the assumed-untracked file is changed upstream,  @@ -839,7 +837,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2010-04-24 02:56:11 UTC  +Last updated 2010-06-13 19:56:37 UTC   </div>   </div>   </body>  
diff --git a/git-update-index.txt b/git-update-index.txt index 68dc187..765d4b3 100644 --- a/git-update-index.txt +++ b/git-update-index.txt 
@@ -93,8 +93,6 @@  This option can be also used as a coarse file-level mechanism  to ignore uncommitted changes in tracked files (akin to what  `.gitignore` does for untracked files). -You should remember that an explicit 'git add' operation will -still cause the file to be refreshed from the working tree.  Git will fail (gracefully) in case it needs to modify this file  in the index e.g. when merging in a commit;  thus, in case the assumed-untracked file is changed upstream, 
diff --git a/git-whatchanged.html b/git-whatchanged.html index 245ff5b..0f96644 100644 --- a/git-whatchanged.html +++ b/git-whatchanged.html 
@@ -473,7 +473,12 @@  have limited your view of history: for example, if you are   only interested in changes related to a certain directory or   file.</p></div>  -<div class="para"><p>Here are some additional details for each format:</p></div>  +<div class="para"><p>There are several built-in formats, and you can define  +additional formats by setting a pretty.&lt;name&gt;  +config option to either another format name, or a  +<em>format:</em> string, as described below (see  +<a href="git-config.html">git-config(1)</a>). Here are the details of the  +built-in formats:</p></div>   <div class="ilist"><ul>   <li>   <p>  @@ -919,7 +924,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2010-06-02 23:32:09 UTC  +Last updated 2010-06-13 19:56:37 UTC   </div>   </div>   </body>  
diff --git a/git.html b/git.html index 3947940..7708de5 100644 --- a/git.html +++ b/git.html 
@@ -685,7 +685,7 @@  </dt>   <dd>   <p>  - Add/inspect object notes.  + Add or inspect object notes.   </p>   </dd>   <dt>  @@ -2108,7 +2108,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2010-05-21 14:57:19 UTC  +Last updated 2010-06-13 19:56:37 UTC   </div>   </div>   </body>  
diff --git a/gitignore.html b/gitignore.html index 7e5ba9a..8d5685d 100644 --- a/gitignore.html +++ b/gitignore.html 
@@ -419,7 +419,9 @@  <p>   If the pattern does not contain a slash <em>/</em>, git treats it as   a shell glob pattern and checks for a match against the  - pathname without leading directories.  + pathname relative to the location of the <tt>.gitignore</tt> file  + (relative to the toplevel of the work tree if not from a  + <tt>.gitignore</tt> file).   </p>   </li>   <li>  @@ -428,10 +430,15 @@  for consumption by fnmatch(3) with the FNM_PATHNAME flag:   wildcards in the pattern will not match a / in the pathname.   For example, "Documentation/*.html" matches  - "Documentation/git.html" but not  - "Documentation/ppc/ppc.html". A leading slash matches the  - beginning of the pathname; for example, "/*.c" matches  - "cat-file.c" but not "mozilla-sha1/sha1.c".  + "Documentation/git.html" but not "Documentation/ppc/ppc.html"  + or "tools/perf/Documentation/perf.html".  +</p>  +</li>  +<li>  +<p>  +A leading slash matches the beginning of the pathname.  + For example, "/*.c" matches "cat-file.c" but not  + "mozilla-sha1/sha1.c".   </p>   </li>   </ul></div>  @@ -486,7 +493,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 2010-04-24 02:56:13 UTC  +Last updated 2010-06-13 19:56:37 UTC   </div>   </div>   </body>  
diff --git a/gitignore.txt b/gitignore.txt index 98c459d..e10fa88 100644 --- a/gitignore.txt +++ b/gitignore.txt 
@@ -83,16 +83,20 @@    - If the pattern does not contain a slash '/', git treats it as  a shell glob pattern and checks for a match against the - pathname without leading directories. + pathname relative to the location of the `.gitignore` file + (relative to the toplevel of the work tree if not from a + `.gitignore` file).    - Otherwise, git treats the pattern as a shell glob suitable  for consumption by fnmatch(3) with the FNM_PATHNAME flag:  wildcards in the pattern will not match a / in the pathname.  For example, "Documentation/\*.html" matches - "Documentation/git.html" but not - "Documentation/ppc/ppc.html". A leading slash matches the - beginning of the pathname; for example, "/*.c" matches - "cat-file.c" but not "mozilla-sha1/sha1.c". + "Documentation/git.html" but not "Documentation/ppc/ppc.html" + or "tools/perf/Documentation/perf.html". + + - A leading slash matches the beginning of the pathname. + For example, "/*.c" matches "cat-file.c" but not + "mozilla-sha1/sha1.c".    An example:   
diff --git a/pretty-formats.txt b/pretty-formats.txt index b055a67..8c68ce9 100644 --- a/pretty-formats.txt +++ b/pretty-formats.txt 
@@ -11,7 +11,12 @@  only interested in changes related to a certain directory or  file.   -Here are some additional details for each format: +There are several built-in formats, and you can define +additional formats by setting a pretty.<name> +config option to either another format name, or a +'format:' string, as described below (see +linkgit:git-config[1]). Here are the details of the +built-in formats:    * 'oneline'